记一次win10安装cupy的失败经历(附 cupy与numpy对比) | 您所在的位置:网站首页 › ubuntu 安装cuda115 dev › 记一次win10安装cupy的失败经历(附 cupy与numpy对比) |
win10 python38安装cupy中踩的n多个坑
问题的根源应该是我在装cupy之前把Nvidia cuda更新到了最新的11.5版本,原本是10.2版本。中间经历真是太狗血了,花了将近一天时间来搞,当然最后终于好了。应该是win10还不能用cupy-cuda115 记录一下中间大概经历的事情吧,也算是个教训了,中间瞎几把拐弯抹角搞了好多东西,也看了很多的博客跟官方文档,但是都没啥用 中间因为一直在摸索,没想着会整这么久,绕这么多弯,很多就没有截图记录 问题的开始想着先把nvidia的cuda (Compute Unified Device Architecture) 升级到最新的吧,这样也能安装最新的cupy了,于是很多问题就来了...... 在cmd中输入nvidia-smi命令,如下,cuda升级到了11.5![]() 然后问题来了,在import cupy之后显示如下: 之后看了一些博客,索性不指定11.5版本了,直接: pip3.8 install cupy但是输出了一堆error,部分如下: 很明显,需要去下载Microsoft Visual C++ 14.2 or greater 然后就去官方网站下载了,还参考了官方文档里的这个QA: error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools”: https://visualstudio.microsoft.com/visual-cpp-build-tools/ 然后就是一个漫长的过程,下载+安装 成功之后再去重新: pip3.8 install cupy结果他喵的还是没有卵用,跟上面的error输出的一样。。。 问题继续,改变解决角度之后开始从 ModuleNotFoundError: No module named 'cupy' 这个问题出发,找到一些博客 其一如下: ModuleNotFoundError: No module named ‘cupy’, cupy 安装出错 然而我的问题还是毫发无损… 在评论区看到一篇,如下: Pycharm出现ImportError或DLL load failed(CuPy is not correctly installed) 说是改环境变量,往系统变量的path里加几个路径 然而我的问题依旧毫发无损… 有点感觉了Pycharm出现ImportError或DLL load failed(CuPy is not correctly installed) 这篇的评论区,有句话是: 最后: pip3.8 uninstall cupy-cuda115 pip3.8 install cupy-cuda102此时再import cupy,它出现了: 终于好了!其实是自己作,本来一开始直接用cuda v10.2应该就没这么多屁事儿了。。。 不过话说回来,也学到不少东西没写出来,主要写写教训,就mark一下吧 附:cupy numpy对比硬件: CPU:AMD 锐龙4600H; GPU:Nvidia GTX1650,4G独显 import numpy as np import cupy as cp import time start = time.time() a = np.ones(10**7) end = time.time() start_2 = time.time() b = cp.ones(10**7) end_2 = time.time() # CPU interval_1 = end - start # GPU interval_2 = end_2 - start_2 print(interval_1, interval_2, interval_2 / interval_1, sep='\n') # 结果如下: 0.013987541198730469 1.559950351715088 111.52427217563238 # 发现在1000万数据规模时,创建一个(1, 10**7)的数组,numpy速度远快于cupy,是cupy的100多倍 # 将创建的规模改为1亿,即10**8之后,结果如下: 0.18699407577514648 1.5673096179962158 8.381600387601841 # 可见此时numpy的速度仅为cupy的8倍左右,在数据规模大于1000万之后,随着数据规模的增加,cupy的速度提高远大于numpy # 因为本机GPU只有4G,由于显存容量的限制,最后测试一下4*10**8规模 # 结果如下: 0.6669847965240479 1.7918219566345215 2.6864509745536878 # 此时numpy的速度仅为cupy的2倍左右,已经没有了数量级的差距可见,如果GPU的显存容量足够大的话,那么在数据量达到亿规模之后,cupy的优势会越来越明显 |
CopyRight 2018-2019 实验室设备网 版权所有 |